package com.sugon.entity;


import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 领料单实体
 * 表名 MATERIAL_BASE
 *
 * @author sugon
 * @date 2020-01-08 08:53:20
 * @date 2020-07-29 YuXD
 * 新增领料单进度和领料类别字段
 */
@Data
public class MaterialBaseEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 领单号
     */
    private String materCode;

    /**
     * 备注信息
     */
    private String remark;
    /**
     * 模块类型 0备件  1工装
     */
    private Integer type;
    /**
     * 业务单据编号：有可能是维修工单号、维护工单编号
     * 如果没有，则为空
     */
    private String jobCode;
    /**
     * 仓管员
     */
    private String storeker;

    /**
     * 审批时间
     */
    private Date approveDate;

    /**
     * 物料领用申请提交后，第一节点审批人
     * 一般指室主任
     */
    private String approver;

    /**
     * 物料领用申请提交后，第一节点审批人
     * 一般指室主任 的unionId
     * 只做参数传递，系统回填后面使用
     */
    private String approverUnionId;

    /**
     * 领料时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date pickDate;

    /**
     * 领料人ID
     */
    private String picker;

    /**
     * 领料人姓名
     */
    private String pickerName;

    /**
     * 用途
     */
    private String purpose;
    /**
     * 领用部门ID
     */
    private String deptId;

    /**
     * 领用部门名称
     */
    private String deptName;

    /**
     * 主键
     */
    private String id;

    /**
     * 是否审核 0未审核 1审核通过 2审核驳回
     */
    private Integer isCheck;

    /**
     * 审核备注
     */
    private String checkRemark;

    /**
     * 出库时间
     */
    private Date outDate;

    /**
     * 是否完成 0未完成 1已完成 供给仓管人员使用
     * 是否已完成出库
     */
    private Integer isOk;

    /**
     * 删除标识
     */
    private Integer delFlag;

    /**
     * 领料单流程进度
     * 新建、待审批、待出库、出库完毕(结束)
     * 具体查看 MaterialBaseProgress中定义的状态
     */
    private Integer progress;

    /**
     * 领料类别
     * MaterialBaseConst 中取值
     */
    private Integer materialType;

    /**
     * 产线编码
     * 线边库时必填
     */
    private String lineCode;

    /**
     * 产线名称，关联查询获得
     */
    private String lineName;

    /**
     * OA系统备件领用流程实例ID
     * 领用人提交审核时回填
     */
    private String procInstId;

    public String getLine() {
        if (lineCode == null) {
            return "";
        }
        return lineCode + " " + lineName;
    }

    /**
     * 审批用户信息
     */
    private SysUserEntity approverUser;

}
